// 引入pinia
import { userLogin, getUserInfo } from '@/api/userApi';
import { defineStore } from 'pinia';
import router from '@/router/index';
// 创建userStore
// 创建时需要遵循命名规范 useXXXStore
export const useUserStore = defineStore({
    persist: {
        enabled: true, // 开启持久化
        Storage: localStorage, // 使用localStorage存储
    },
    // 定义userStore的名字
    id: 'userStore',
    // 定义state
    state: () => ({
        // 登录
        userToken: {
            token: '',
            refreshtoken: '',
        },
        // 用户信息
        userInfo: {
            useremail: '',
            unit: '',
            rpgname: '',
            qqnum: '',
            phone: '',
            username: '',
            point: '',
        },
        // 用户登录状态
        isLogin: false,
    }),
    // 定义getter
    getters: {
        // 获取用户信息
        getUserToken() {
            return this.userToken;
        },
        //获取用户登录状态
        getLoginStatus() {
            return this.isLogin;
        },
        getUserInfo() {
            return this.userInfo;
        },
    },
    // 定义action

    actions: {
        // 登录方法
        async login(userData) {
            let respData = await userLogin(userData);
            // 登陆成功后设置Token
            if (respData.hasOwnProperty('tokens')) {
                this.userToken = respData.tokens;
                console.log('设置token')
                console.log(this.userToken)
                this.isLogin = true;
                router.push({ path: '/index' });
            }
        },
        // 退出方法
        logout() {
            this.userToken = {};
            this.isLogin = false;
            ElMessage.success('退出成功');
            window.location.reload();
        },
        // 获取用户信息
        async UserInfo() {
            let respData = await getUserInfo();
            if (respData.hasOwnProperty('myinfo')) {
                this.userInfo = respData.myinfo;
            }
        },
    },
});
export default useUserStore;
